#include <iostream>
#include <cmath>
#define int128 __int128_t
using namespace std;

// 已知

long long n;
// 未知

void print(int128 x)
{
    if (x < 0) putchar('-');
    if (x > 9) print(x / 10);
    putchar(x % 10 + '0');
}

int main()
{
    cin >> n;
    for (long long i = 1; i * i * i < n; i++)
    {
        if (n % i == 0)
        {
            int128 a = 3, b = -3 * i, c = i * i - n / i;  // 用于计算出一元二次方程的根
            int128 k = b * b - 4 * a * c; // 用于计算判定式
            if (k >= 0)
            {
                int128 x = (-b + sqrt(k)) / (2 * a); // 数很大直接用int128
                int128 y = x - i;
                // 因为这道题是特殊判题，找一个解就可以，所以之判定一个
                if (x > 0 and y > 0 and x * x * x - y * y * y == n)
                {
                    print(x);
                    cout << ' ';
                    print(y);
                    return 0;
                }
                x = (-b + sqrt(k)) / (2 * a); // 数很大直接用int128
                y = x - i;
                if (x > 0 and y > 0 and x * x * x - y * y * y == n)
                {
                    print(x);
                    cout << ' ';
                    print(y);
                    return 0;
                }
            }
        }
    }
    cout << -1;
    return 0;
}